Website powered by

Whalebone Cove (WORK IN PROGRESS)

!!WORK IN PROGRESS!!
I started this project as learning exercise with the aim of building a highly customisable rock material, as well as learning how to use world aligned textures and vertex paint for realistic materials in UE4.

Instead of doing everything in a single material graph packed with nodes and functions, this time I switched my workflow to use multiple parameterized material layers and vertex paint blend layers.

Once I was happy with the variety of parameter options on the rock materials, I decided to test it out by creating a small realistic styled coastal environment, loosely inspired by the whale graveyard areas of Skellige in the Witcher 3.

The rock material's initial base colour is controlled by channels in an RGBA mask. This approach makes the material a little performance heavy but allows for far more precise colour customisation than just using a hueshift on a texture

The rock material's initial base colour is controlled by channels in an RGBA mask. This approach makes the material a little performance heavy but allows for far more precise colour customisation than just using a hueshift on a texture

Rock striations texture used to add colour variation over the initial simple basecolour

Rock striations texture used to add colour variation over the initial simple basecolour

In addition to my parameterized material layers (base rock, worldaligned moss, vertex paint) I added further global parameters into the material using custom built material functions: a worldaligned colour gradient and worldposition based colour variation

In addition to my parameterized material layers (base rock, worldaligned moss, vertex paint) I added further global parameters into the material using custom built material functions: a worldaligned colour gradient and worldposition based colour variation

Here's the parameters for the base rock material layer - it's a little performance heavy but I feel very happy with the level of customisation options and I'll likely use this workflow as an iterative look development tool in the future

Here's the parameters for the base rock material layer - it's a little performance heavy but I feel very happy with the level of customisation options and I'll likely use this workflow as an iterative look development tool in the future

Parameters for the vertex paint layer and moss - I kept these relatively simple for performance reasons, so the majority of customisation lies in the base rock layer

Parameters for the vertex paint layer and moss - I kept these relatively simple for performance reasons, so the majority of customisation lies in the base rock layer

Global parameters control a world aligned colour gradient and a world-position based colour changing function that shifts the overall colour hue slightly based on the rock mesh's position in the level

Global parameters control a world aligned colour gradient and a world-position based colour changing function that shifts the overall colour hue slightly based on the rock mesh's position in the level

Video of the customisation options in action

My worldposition colour function in action - it means I can place clusters of rocks which share the same material/parameters without them looking overly uniform in colour.

The lichen texture is packed into a material layer and masked in the G channel when vertex painting

I made this lichen texture in Designer for one of my vertex paint material layers - since it uses an opacity mask I dropped the texture size to 256 in engine for optimization

I made this lichen texture in Designer for one of my vertex paint material layers - since it uses an opacity mask I dropped the texture size to 256 in engine for optimization

In Substance Designer I created initial lichen shapes using the panorama shape node and built up a library of layered variants by repeating directionalwarp/radial splatter nodes, followed by fxmap nodes to scatter each result

In Substance Designer I created initial lichen shapes using the panorama shape node and built up a library of layered variants by repeating directionalwarp/radial splatter nodes, followed by fxmap nodes to scatter each result

Here's the process of building up rock shapes and cracks in Substance Designer for a macro rock noise texture, which I used to add some variation into my base rock material layer

The final rock noise texture

The final rock noise texture

Textures for the coastal pebbles material, one of three material layers on the level's landscape

Textures for the coastal pebbles material, one of three material layers on the level's landscape

Dry sand textures

Dry sand textures

Wet sand textures

Wet sand textures